// axios定制化设置请求响应拦截器，统一处理请求响应
// https://blog.csdn.net/qq_44787816/article/details/119868664

import axios from "axios"
import {message} from "antd";

// 创建axios实例
const instance = axios.create({
    // 基本请求路径的抽取
    baseURL:"https://wwww.pdrnft.com",
    // 这个时间是你每次请求的过期时间，这次请求认为20秒之后这个请求就是失败的
    timeout:20000
})

// 请求拦截器
instance.interceptors.request.use(config=>{
    // 请求中带上token
    const token = localStorage.getItem('lege-token');
    if (token) {
        config.headers['Authorization'] = 'Bearer ' + token;
    }
    return config
},err=>{
    return Promise.reject(err)
});

// 响应拦截器
instance.interceptors.response.use(res=>{
    // 未设置状态码则默认成功状态
    const code = res.data.code || 200;

    // 如果token失效, 清空token并跳转到登录页
    if (code === 401) {
        // 清空token
        localStorage.setItem("lege-token", '');
        //弹出框提示
        message.error('登录状态已过期，请您重新登录');
        window.location.href = '/login';
    }

    return res.data;
},err=>{
    return Promise.reject(err)
})

export default instance